/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * API网关
 * API网关相关接口
 *
 * OpenAPI spec version: v1
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using JDCloudSDK.Core.Auth;
using JDCloudSDK.Core.Client;
using JDCloudSDK.Core.Http;
using JDCloudSDK.Apigateway.Apis;
using JDCloudSDK.Apigateway.Model;
using System;
using System.Collections.Generic;
using System.Text;
#if NET40||NET35
#else
using System.Threading.Tasks;
#endif

namespace JDCloudSDK.Apigateway.Client
{
    /// <summary>
    ///  API网关
    ///  API网关相关接口
    ///  Apigateway Api 客户端
    ///</summary>
    public class ApigatewayClient : JdcloudClient
    {

        /// <summary>
        ///  默认私有构造函数
        /// </summary>
        private ApigatewayClient()
        {

        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="environment">sdk 环境配置信息</param>
        public ApigatewayClient(CredentialsProvider credentialsProvider, HttpRequestConfig httpRequestConfig,SDKEnvironment environment)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
            this.environment = environment;
        }

        /// <summary>
        /// 默认构造函数
        /// </summary>
        /// <param name="httpRequestConfig">http 客户端配置信息</param>
        /// <param name="credentialsProvider">认证信息</param>
        public ApigatewayClient(CredentialsProvider credentialsProvider,HttpRequestConfig httpRequestConfig)
        {
            this.httpRequestConfig = httpRequestConfig;
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        /// 默认构造函数，
        /// 注意如果使用此方法 httpRequestConfig 使用的http 请求 schema 为Https
        /// </summary>
        /// <param name="credentialsProvider">认证信息</param>
        public ApigatewayClient(CredentialsProvider credentialsProvider)
        {
            this.credentialsProvider = credentialsProvider;
        }

        /// <summary>
        ///  版本号 1.2.0
        ///</summary>
        public const string ClientVersion = "1.2.0";

        private const string apiVersion = "v1";
        private const string userAgentPrefix = "JdcloudSdkDotNet";
        private const string defaultEndpoint = "apigateway.jdcloud-api.com";
        private const string serviceName = "apigateway";
        private const string userAgent = userAgentPrefix + "/" + ClientVersion + " " + serviceName + "/" + apiVersion;


        private SDKEnvironment environment = new SDKEnvironment(defaultEndpoint);
        private CredentialsProvider credentialsProvider;
        private HttpRequestConfig httpRequestConfig;

        /// <summary>
        ///  获取证书信息
        ///</summary>
        public override CredentialsProvider CredentialsProvider   { get { return credentialsProvider; } }

        /// <summary>
        ///  获取http 客户端配置信息
        ///</summary>
        public override HttpRequestConfig HttpRequestConfig { get { return httpRequestConfig; } }

        /// <summary>
        ///  获取sdk环境配置信息
        ///</summary>
        public override SDKEnvironment SDKEnvironment { get { return environment; } }

        /// <summary>
        ///  获取用户自定义浏览器识别字符串
        ///</summary>
        public override string UserAgent { get { return userAgent; } }

        /// <summary>
        ///  获取服务名称
        ///</summary>
        public override string ServiceName { get { return serviceName; } }

        /// <summary>
        ///  获取版本号
        ///</summary>
        public override string Version { get { return apiVersion; } }



#if NET40||NET35
        /// <summary>
        ///  添加用户域名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateUserDomainResponse CreateUserDomain(CreateUserDomainRequest request) {
            return  new CreateUserDomainExecutor().Client(this).Execute<CreateUserDomainResponse, CreateUserDomainResult, CreateUserDomainRequest>(request);
        }
#else
        /// <summary>
        ///  添加用户域名
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateUserDomainResponse> CreateUserDomain(CreateUserDomainRequest request) {
            return await new CreateUserDomainExecutor().Client(this).Execute<CreateUserDomainResponse, CreateUserDomainResult, CreateUserDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查分组名称是否重复,返回重复的apiGroupId,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckGroupNameExistResponse CheckGroupNameExist(CheckGroupNameExistRequest request) {
            return  new CheckGroupNameExistExecutor().Client(this).Execute<CheckGroupNameExistResponse, CheckGroupNameExistResult, CheckGroupNameExistRequest>(request);
        }
#else
        /// <summary>
        ///  检查分组名称是否重复,返回重复的apiGroupId,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckGroupNameExistResponse> CheckGroupNameExist(CheckGroupNameExistRequest request) {
            return await new CheckGroupNameExistExecutor().Client(this).Execute<CheckGroupNameExistResponse, CheckGroupNameExistResult, CheckGroupNameExistRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteAccessKeyResponse DeleteAccessKey(DeleteAccessKeyRequest request) {
            return  new DeleteAccessKeyExecutor().Client(this).Execute<DeleteAccessKeyResponse, DeleteAccessKeyResult, DeleteAccessKeyRequest>(request);
        }
#else
        /// <summary>
        ///  删除密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteAccessKeyResponse> DeleteAccessKey(DeleteAccessKeyRequest request) {
            return await new DeleteAccessKeyExecutor().Client(this).Execute<DeleteAccessKeyResponse, DeleteAccessKeyResult, DeleteAccessKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteApiByNameResponse DeleteApiByName(DeleteApiByNameRequest request) {
            return  new DeleteApiByNameExecutor().Client(this).Execute<DeleteApiByNameResponse, DeleteApiByNameResult, DeleteApiByNameRequest>(request);
        }
#else
        /// <summary>
        ///  删除api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteApiByNameResponse> DeleteApiByName(DeleteApiByNameRequest request) {
            return await new DeleteApiByNameExecutor().Client(this).Execute<DeleteApiByNameResponse, DeleteApiByNameResult, DeleteApiByNameRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeIsDeployApiGroupsResponse DescribeIsDeployApiGroups(DescribeIsDeployApiGroupsRequest request) {
            return  new DescribeIsDeployApiGroupsExecutor().Client(this).Execute<DescribeIsDeployApiGroupsResponse, DescribeIsDeployApiGroupsResult, DescribeIsDeployApiGroupsRequest>(request);
        }
#else
        /// <summary>
        ///  查询分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeIsDeployApiGroupsResponse> DescribeIsDeployApiGroups(DescribeIsDeployApiGroupsRequest request) {
            return await new DescribeIsDeployApiGroupsExecutor().Client(this).Execute<DescribeIsDeployApiGroupsResponse, DescribeIsDeployApiGroupsResult, DescribeIsDeployApiGroupsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteSubscriptionKeyResponse DeleteSubscriptionKey(DeleteSubscriptionKeyRequest request) {
            return  new DeleteSubscriptionKeyExecutor().Client(this).Execute<DeleteSubscriptionKeyResponse, DeleteSubscriptionKeyResult, DeleteSubscriptionKeyRequest>(request);
        }
#else
        /// <summary>
        ///  删除密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteSubscriptionKeyResponse> DeleteSubscriptionKey(DeleteSubscriptionKeyRequest request) {
            return await new DeleteSubscriptionKeyExecutor().Client(this).Execute<DeleteSubscriptionKeyResponse, DeleteSubscriptionKeyResult, DeleteSubscriptionKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  绑定分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public BindGroupKeyResponse BindGroupKey(BindGroupKeyRequest request) {
            return  new BindGroupKeyExecutor().Client(this).Execute<BindGroupKeyResponse, BindGroupKeyResult, BindGroupKeyRequest>(request);
        }
#else
        /// <summary>
        ///  绑定分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<BindGroupKeyResponse> BindGroupKey(BindGroupKeyRequest request) {
            return await new BindGroupKeyExecutor().Client(this).Execute<BindGroupKeyResponse, BindGroupKeyResult, BindGroupKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateApisResponse CreateApis(CreateApisRequest request) {
            return  new CreateApisExecutor().Client(this).Execute<CreateApisResponse, CreateApisResult, CreateApisRequest>(request);
        }
#else
        /// <summary>
        ///  创建api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateApisResponse> CreateApis(CreateApisRequest request) {
            return await new CreateApisExecutor().Client(this).Execute<CreateApisResponse, CreateApisResult, CreateApisRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateRateLimitPolicyResponse UpdateRateLimitPolicy(UpdateRateLimitPolicyRequest request) {
            return  new UpdateRateLimitPolicyExecutor().Client(this).Execute<UpdateRateLimitPolicyResponse, UpdateRateLimitPolicyResult, UpdateRateLimitPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  修改流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateRateLimitPolicyResponse> UpdateRateLimitPolicy(UpdateRateLimitPolicyRequest request) {
            return await new UpdateRateLimitPolicyExecutor().Client(this).Execute<UpdateRateLimitPolicyResponse, UpdateRateLimitPolicyResult, UpdateRateLimitPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查accessAuth是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckAuthExistResponse CheckAuthExist(CheckAuthExistRequest request) {
            return  new CheckAuthExistExecutor().Client(this).Execute<CheckAuthExistResponse, CheckAuthExistResult, CheckAuthExistRequest>(request);
        }
#else
        /// <summary>
        ///  检查accessAuth是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckAuthExistResponse> CheckAuthExist(CheckAuthExistRequest request) {
            return await new CheckAuthExistExecutor().Client(this).Execute<CheckAuthExistResponse, CheckAuthExistResult, CheckAuthExistRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询单个密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAccessKeyResponse QueryAccessKey(QueryAccessKeyRequest request) {
            return  new QueryAccessKeyExecutor().Client(this).Execute<QueryAccessKeyResponse, QueryAccessKeyResult, QueryAccessKeyRequest>(request);
        }
#else
        /// <summary>
        ///  查询单个密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAccessKeyResponse> QueryAccessKey(QueryAccessKeyRequest request) {
            return await new QueryAccessKeyExecutor().Client(this).Execute<QueryAccessKeyResponse, QueryAccessKeyResult, QueryAccessKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  下线
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public OfflineResponse Offline(OfflineRequest request) {
            return  new OfflineExecutor().Client(this).Execute<OfflineResponse, OfflineResult, OfflineRequest>(request);
        }
#else
        /// <summary>
        ///  下线
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<OfflineResponse> Offline(OfflineRequest request) {
            return await new OfflineExecutor().Client(this).Execute<OfflineResponse, OfflineResult, OfflineRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  绑定分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public BindGroupAuthResponse BindGroupAuth(BindGroupAuthRequest request) {
            return  new BindGroupAuthExecutor().Client(this).Execute<BindGroupAuthResponse, BindGroupAuthResult, BindGroupAuthRequest>(request);
        }
#else
        /// <summary>
        ///  绑定分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<BindGroupAuthResponse> BindGroupAuth(BindGroupAuthRequest request) {
            return await new BindGroupAuthExecutor().Client(this).Execute<BindGroupAuthResponse, BindGroupAuthResult, BindGroupAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询分组内全部修订版本号
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public GetRevisionIdsResponse GetRevisionIds(GetRevisionIdsRequest request) {
            return  new GetRevisionIdsExecutor().Client(this).Execute<GetRevisionIdsResponse, GetRevisionIdsResult, GetRevisionIdsRequest>(request);
        }
#else
        /// <summary>
        ///  查询分组内全部修订版本号
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<GetRevisionIdsResponse> GetRevisionIds(GetRevisionIdsRequest request) {
            return await new GetRevisionIdsExecutor().Client(this).Execute<GetRevisionIdsResponse, GetRevisionIdsResult, GetRevisionIdsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查AccessKey是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckKeyExistResponse CheckKeyExist(CheckKeyExistRequest request) {
            return  new CheckKeyExistExecutor().Client(this).Execute<CheckKeyExistResponse, CheckKeyExistResult, CheckKeyExistRequest>(request);
        }
#else
        /// <summary>
        ///  检查AccessKey是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckKeyExistResponse> CheckKeyExist(CheckKeyExistRequest request) {
            return await new CheckKeyExistExecutor().Client(this).Execute<CheckKeyExistResponse, CheckKeyExistResult, CheckKeyExistRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询访问授权列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAccessAuthsResponse QueryAccessAuths(QueryAccessAuthsRequest request) {
            return  new QueryAccessAuthsExecutor().Client(this).Execute<QueryAccessAuthsResponse, QueryAccessAuthsResult, QueryAccessAuthsRequest>(request);
        }
#else
        /// <summary>
        ///  查询访问授权列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAccessAuthsResponse> QueryAccessAuths(QueryAccessAuthsRequest request) {
            return await new QueryAccessAuthsExecutor().Client(this).Execute<QueryAccessAuthsResponse, QueryAccessAuthsResult, QueryAccessAuthsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询某版本对应的api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryRevisionResponse QueryRevision(QueryRevisionRequest request) {
            return  new QueryRevisionExecutor().Client(this).Execute<QueryRevisionResponse, QueryRevisionResult, QueryRevisionRequest>(request);
        }
#else
        /// <summary>
        ///  查询某版本对应的api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryRevisionResponse> QueryRevision(QueryRevisionRequest request) {
            return await new QueryRevisionExecutor().Client(this).Execute<QueryRevisionResponse, QueryRevisionResult, QueryRevisionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  开通后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateBackendConfigResponse CreateBackendConfig(CreateBackendConfigRequest request) {
            return  new CreateBackendConfigExecutor().Client(this).Execute<CreateBackendConfigResponse, CreateBackendConfigResult, CreateBackendConfigRequest>(request);
        }
#else
        /// <summary>
        ///  开通后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateBackendConfigResponse> CreateBackendConfig(CreateBackendConfigRequest request) {
            return await new CreateBackendConfigExecutor().Client(this).Execute<CreateBackendConfigResponse, CreateBackendConfigResult, CreateBackendConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询单个密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QuerySubscriptionKeyResponse QuerySubscriptionKey(QuerySubscriptionKeyRequest request) {
            return  new QuerySubscriptionKeyExecutor().Client(this).Execute<QuerySubscriptionKeyResponse, QuerySubscriptionKeyResult, QuerySubscriptionKeyRequest>(request);
        }
#else
        /// <summary>
        ///  查询单个密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QuerySubscriptionKeyResponse> QuerySubscriptionKey(QuerySubscriptionKeyRequest request) {
            return await new QuerySubscriptionKeyExecutor().Client(this).Execute<QuerySubscriptionKeyResponse, QuerySubscriptionKeyResult, QuerySubscriptionKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改API分组信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyApiGroupAttributeResponse ModifyApiGroupAttribute(ModifyApiGroupAttributeRequest request) {
            return  new ModifyApiGroupAttributeExecutor().Client(this).Execute<ModifyApiGroupAttributeResponse, ModifyApiGroupAttributeResult, ModifyApiGroupAttributeRequest>(request);
        }
#else
        /// <summary>
        ///  修改API分组信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyApiGroupAttributeResponse> ModifyApiGroupAttribute(ModifyApiGroupAttributeRequest request) {
            return await new ModifyApiGroupAttributeExecutor().Client(this).Execute<ModifyApiGroupAttributeResponse, ModifyApiGroupAttributeResult, ModifyApiGroupAttributeRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  校验pin是否存在
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckPinResponse CheckPin(CheckPinRequest request) {
            return  new CheckPinExecutor().Client(this).Execute<CheckPinResponse, CheckPinResult, CheckPinRequest>(request);
        }
#else
        /// <summary>
        ///  校验pin是否存在
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckPinResponse> CheckPin(CheckPinRequest request) {
            return await new CheckPinExecutor().Client(this).Execute<CheckPinResponse, CheckPinResult, CheckPinRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查策略名是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckPolicyNameResponse CheckPolicyName(CheckPolicyNameRequest request) {
            return  new CheckPolicyNameExecutor().Client(this).Execute<CheckPolicyNameResponse, CheckPolicyNameResult, CheckPolicyNameRequest>(request);
        }
#else
        /// <summary>
        ///  检查策略名是否重复
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckPolicyNameResponse> CheckPolicyName(CheckPolicyNameRequest request) {
            return await new CheckPolicyNameExecutor().Client(this).Execute<CheckPolicyNameResponse, CheckPolicyNameResult, CheckPolicyNameRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询单个流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryRateLimitPolicyResponse QueryRateLimitPolicy(QueryRateLimitPolicyRequest request) {
            return  new QueryRateLimitPolicyExecutor().Client(this).Execute<QueryRateLimitPolicyResponse, QueryRateLimitPolicyResult, QueryRateLimitPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  查询单个流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryRateLimitPolicyResponse> QueryRateLimitPolicy(QueryRateLimitPolicyRequest request) {
            return await new QueryRateLimitPolicyExecutor().Client(this).Execute<QueryRateLimitPolicyResponse, QueryRateLimitPolicyResult, QueryRateLimitPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateApiResponse UpdateApi(UpdateApiRequest request) {
            return  new UpdateApiExecutor().Client(this).Execute<UpdateApiResponse, UpdateApiResult, UpdateApiRequest>(request);
        }
#else
        /// <summary>
        ///  修改api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateApiResponse> UpdateApi(UpdateApiRequest request) {
            return await new UpdateApiExecutor().Client(this).Execute<UpdateApiResponse, UpdateApiResult, UpdateApiRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建API分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateApiGroupResponse CreateApiGroup(CreateApiGroupRequest request) {
            return  new CreateApiGroupExecutor().Client(this).Execute<CreateApiGroupResponse, CreateApiGroupResult, CreateApiGroupRequest>(request);
        }
#else
        /// <summary>
        ///  创建API分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateApiGroupResponse> CreateApiGroup(CreateApiGroupRequest request) {
            return await new CreateApiGroupExecutor().Client(this).Execute<CreateApiGroupResponse, CreateApiGroupResult, CreateApiGroupRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询修订版本列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeRevisionsResponse DescribeRevisions(DescribeRevisionsRequest request) {
            return  new DescribeRevisionsExecutor().Client(this).Execute<DescribeRevisionsResponse, DescribeRevisionsResult, DescribeRevisionsRequest>(request);
        }
#else
        /// <summary>
        ///  查询修订版本列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeRevisionsResponse> DescribeRevisions(DescribeRevisionsRequest request) {
            return await new DescribeRevisionsExecutor().Client(this).Execute<DescribeRevisionsResponse, DescribeRevisionsResult, DescribeRevisionsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateAccessKeyResponse UpdateAccessKey(UpdateAccessKeyRequest request) {
            return  new UpdateAccessKeyExecutor().Client(this).Execute<UpdateAccessKeyResponse, UpdateAccessKeyResult, UpdateAccessKeyRequest>(request);
        }
#else
        /// <summary>
        ///  更新密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateAccessKeyResponse> UpdateAccessKey(UpdateAccessKeyRequest request) {
            return await new UpdateAccessKeyExecutor().Client(this).Execute<UpdateAccessKeyResponse, UpdateAccessKeyResult, UpdateAccessKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询单个访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAccessAuthResponse QueryAccessAuth(QueryAccessAuthRequest request) {
            return  new QueryAccessAuthExecutor().Client(this).Execute<QueryAccessAuthResponse, QueryAccessAuthResult, QueryAccessAuthRequest>(request);
        }
#else
        /// <summary>
        ///  查询单个访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAccessAuthResponse> QueryAccessAuth(QueryAccessAuthRequest request) {
            return await new QueryAccessAuthExecutor().Client(this).Execute<QueryAccessAuthResponse, QueryAccessAuthResult, QueryAccessAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryKeyGroupListResponse QueryKeyGroupList(QueryKeyGroupListRequest request) {
            return  new QueryKeyGroupListExecutor().Client(this).Execute<QueryKeyGroupListResponse, QueryKeyGroupListResult, QueryKeyGroupListRequest>(request);
        }
#else
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryKeyGroupListResponse> QueryKeyGroupList(QueryKeyGroupListRequest request) {
            return await new QueryKeyGroupListExecutor().Client(this).Execute<QueryKeyGroupListResponse, QueryKeyGroupListResult, QueryKeyGroupListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询所有已授权api分组列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public AuthorizedApiGroupListResponse AuthorizedApiGroupList(AuthorizedApiGroupListRequest request) {
            return  new AuthorizedApiGroupListExecutor().Client(this).Execute<AuthorizedApiGroupListResponse, AuthorizedApiGroupListResult, AuthorizedApiGroupListRequest>(request);
        }
#else
        /// <summary>
        ///  查询所有已授权api分组列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<AuthorizedApiGroupListResponse> AuthorizedApiGroupList(AuthorizedApiGroupListRequest request) {
            return await new AuthorizedApiGroupListExecutor().Client(this).Execute<AuthorizedApiGroupListResponse, AuthorizedApiGroupListResult, AuthorizedApiGroupListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询domian列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryUserDomainsResponse QueryUserDomains(QueryUserDomainsRequest request) {
            return  new QueryUserDomainsExecutor().Client(this).Execute<QueryUserDomainsResponse, QueryUserDomainsResult, QueryUserDomainsRequest>(request);
        }
#else
        /// <summary>
        ///  查询domian列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryUserDomainsResponse> QueryUserDomains(QueryUserDomainsRequest request) {
            return await new QueryUserDomainsExecutor().Client(this).Execute<QueryUserDomainsResponse, QueryUserDomainsResult, QueryUserDomainsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QuerySubscriptionKeysResponse QuerySubscriptionKeys(QuerySubscriptionKeysRequest request) {
            return  new QuerySubscriptionKeysExecutor().Client(this).Execute<QuerySubscriptionKeysResponse, QuerySubscriptionKeysResult, QuerySubscriptionKeysRequest>(request);
        }
#else
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QuerySubscriptionKeysResponse> QuerySubscriptionKeys(QuerySubscriptionKeysRequest request) {
            return await new QuerySubscriptionKeysExecutor().Client(this).Execute<QuerySubscriptionKeysResponse, QuerySubscriptionKeysResult, QuerySubscriptionKeysRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateSubscriptionKeyResponse UpdateSubscriptionKey(UpdateSubscriptionKeyRequest request) {
            return  new UpdateSubscriptionKeyExecutor().Client(this).Execute<UpdateSubscriptionKeyResponse, UpdateSubscriptionKeyResult, UpdateSubscriptionKeyRequest>(request);
        }
#else
        /// <summary>
        ///  更新密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateSubscriptionKeyResponse> UpdateSubscriptionKey(UpdateSubscriptionKeyRequest request) {
            return await new UpdateSubscriptionKeyExecutor().Client(this).Execute<UpdateSubscriptionKeyResponse, UpdateSubscriptionKeyResult, UpdateSubscriptionKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询绑定分组详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryBindGroupKeyResponse QueryBindGroupKey(QueryBindGroupKeyRequest request) {
            return  new QueryBindGroupKeyExecutor().Client(this).Execute<QueryBindGroupKeyResponse, QueryBindGroupKeyResult, QueryBindGroupKeyRequest>(request);
        }
#else
        /// <summary>
        ///  查询绑定分组详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryBindGroupKeyResponse> QueryBindGroupKey(QueryBindGroupKeyRequest request) {
            return await new QueryBindGroupKeyExecutor().Client(this).Execute<QueryBindGroupKeyResponse, QueryBindGroupKeyResult, QueryBindGroupKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改单个修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ModifyRevisionResponse ModifyRevision(ModifyRevisionRequest request) {
            return  new ModifyRevisionExecutor().Client(this).Execute<ModifyRevisionResponse, ModifyRevisionResult, ModifyRevisionRequest>(request);
        }
#else
        /// <summary>
        ///  修改单个修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ModifyRevisionResponse> ModifyRevision(ModifyRevisionRequest request) {
            return await new ModifyRevisionExecutor().Client(this).Execute<ModifyRevisionResponse, ModifyRevisionResult, ModifyRevisionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询绑定部署详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryBindGroupPolicyResponse QueryBindGroupPolicy(QueryBindGroupPolicyRequest request) {
            return  new QueryBindGroupPolicyExecutor().Client(this).Execute<QueryBindGroupPolicyResponse, QueryBindGroupPolicyResult, QueryBindGroupPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  查询绑定部署详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryBindGroupPolicyResponse> QueryBindGroupPolicy(QueryBindGroupPolicyRequest request) {
            return await new QueryBindGroupPolicyExecutor().Client(this).Execute<QueryBindGroupPolicyResponse, QueryBindGroupPolicyResult, QueryBindGroupPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteApiResponse DeleteApi(DeleteApiRequest request) {
            return  new DeleteApiExecutor().Client(this).Execute<DeleteApiResponse, DeleteApiResult, DeleteApiRequest>(request);
        }
#else
        /// <summary>
        ///  删除api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteApiResponse> DeleteApi(DeleteApiRequest request) {
            return await new DeleteApiExecutor().Client(this).Execute<DeleteApiResponse, DeleteApiResult, DeleteApiRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询该版本的部署详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeDeploymentResponse DescribeDeployment(DescribeDeploymentRequest request) {
            return  new DescribeDeploymentExecutor().Client(this).Execute<DescribeDeploymentResponse, DescribeDeploymentResult, DescribeDeploymentRequest>(request);
        }
#else
        /// <summary>
        ///  查询该版本的部署详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeDeploymentResponse> DescribeDeployment(DescribeDeploymentRequest request) {
            return await new DescribeDeploymentExecutor().Client(this).Execute<DescribeDeploymentResponse, DescribeDeploymentResult, DescribeDeploymentRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询backendConfig
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeBackendConfigResponse DescribeBackendConfig(DescribeBackendConfigRequest request) {
            return  new DescribeBackendConfigExecutor().Client(this).Execute<DescribeBackendConfigResponse, DescribeBackendConfigResult, DescribeBackendConfigRequest>(request);
        }
#else
        /// <summary>
        ///  查询backendConfig
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeBackendConfigResponse> DescribeBackendConfig(DescribeBackendConfigRequest request) {
            return await new DescribeBackendConfigExecutor().Client(this).Execute<DescribeBackendConfigResponse, DescribeBackendConfigResult, DescribeBackendConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateAccessAuthResponse CreateAccessAuth(CreateAccessAuthRequest request) {
            return  new CreateAccessAuthExecutor().Client(this).Execute<CreateAccessAuthResponse, CreateAccessAuthResult, CreateAccessAuthRequest>(request);
        }
#else
        /// <summary>
        ///  创建访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateAccessAuthResponse> CreateAccessAuth(CreateAccessAuthRequest request) {
            return await new CreateAccessAuthExecutor().Client(this).Execute<CreateAccessAuthResponse, CreateAccessAuthResult, CreateAccessAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  批量下线
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public BatchOfflineResponse BatchOffline(BatchOfflineRequest request) {
            return  new BatchOfflineExecutor().Client(this).Execute<BatchOfflineResponse, BatchOfflineResult, BatchOfflineRequest>(request);
        }
#else
        /// <summary>
        ///  批量下线
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<BatchOfflineResponse> BatchOffline(BatchOfflineRequest request) {
            return await new BatchOfflineExecutor().Client(this).Execute<BatchOfflineResponse, BatchOfflineResult, BatchOfflineRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询API分组详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeApiGroupResponse DescribeApiGroup(DescribeApiGroupRequest request) {
            return  new DescribeApiGroupExecutor().Client(this).Execute<DescribeApiGroupResponse, DescribeApiGroupResult, DescribeApiGroupRequest>(request);
        }
#else
        /// <summary>
        ///  查询API分组详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeApiGroupResponse> DescribeApiGroup(DescribeApiGroupRequest request) {
            return await new DescribeApiGroupExecutor().Client(this).Execute<DescribeApiGroupResponse, DescribeApiGroupResult, DescribeApiGroupRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询指定环境下的所有后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeBackendConfigsResponse DescribeBackendConfigs(DescribeBackendConfigsRequest request) {
            return  new DescribeBackendConfigsExecutor().Client(this).Execute<DescribeBackendConfigsResponse, DescribeBackendConfigsResult, DescribeBackendConfigsRequest>(request);
        }
#else
        /// <summary>
        ///  查询指定环境下的所有后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeBackendConfigsResponse> DescribeBackendConfigs(DescribeBackendConfigsRequest request) {
            return await new DescribeBackendConfigsExecutor().Client(this).Execute<DescribeBackendConfigsResponse, DescribeBackendConfigsResult, DescribeBackendConfigsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateAccessKeyResponse CreateAccessKey(CreateAccessKeyRequest request) {
            return  new CreateAccessKeyExecutor().Client(this).Execute<CreateAccessKeyResponse, CreateAccessKeyResult, CreateAccessKeyRequest>(request);
        }
#else
        /// <summary>
        ///  创建密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateAccessKeyResponse> CreateAccessKey(CreateAccessKeyRequest request) {
            return await new CreateAccessKeyExecutor().Client(this).Execute<CreateAccessKeyResponse, CreateAccessKeyResult, CreateAccessKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteAccessAuthResponse DeleteAccessAuth(DeleteAccessAuthRequest request) {
            return  new DeleteAccessAuthExecutor().Client(this).Execute<DeleteAccessAuthResponse, DeleteAccessAuthResult, DeleteAccessAuthRequest>(request);
        }
#else
        /// <summary>
        ///  删除访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteAccessAuthResponse> DeleteAccessAuth(DeleteAccessAuthRequest request) {
            return await new DeleteAccessAuthExecutor().Client(this).Execute<DeleteAccessAuthResponse, DeleteAccessAuthResult, DeleteAccessAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改key信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateKeyResponse UpdateKey(UpdateKeyRequest request) {
            return  new UpdateKeyExecutor().Client(this).Execute<UpdateKeyResponse, UpdateKeyResult, UpdateKeyRequest>(request);
        }
#else
        /// <summary>
        ///  修改key信息
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateKeyResponse> UpdateKey(UpdateKeyRequest request) {
            return await new UpdateKeyExecutor().Client(this).Execute<UpdateKeyResponse, UpdateKeyResult, UpdateKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  更新访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateAccessAuthResponse UpdateAccessAuth(UpdateAccessAuthRequest request) {
            return  new UpdateAccessAuthExecutor().Client(this).Execute<UpdateAccessAuthResponse, UpdateAccessAuthResult, UpdateAccessAuthRequest>(request);
        }
#else
        /// <summary>
        ///  更新访问授权
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateAccessAuthResponse> UpdateAccessAuth(UpdateAccessAuthRequest request) {
            return await new UpdateAccessAuthExecutor().Client(this).Execute<UpdateAccessAuthResponse, UpdateAccessAuthResult, UpdateAccessAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  检查版本号是否重复,返回重复的版本号,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckRevisionExistResponse CheckRevisionExist(CheckRevisionExistRequest request) {
            return  new CheckRevisionExistExecutor().Client(this).Execute<CheckRevisionExistResponse, CheckRevisionExistResult, CheckRevisionExistRequest>(request);
        }
#else
        /// <summary>
        ///  检查版本号是否重复,返回重复的版本号,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckRevisionExistResponse> CheckRevisionExist(CheckRevisionExistRequest request) {
            return await new CheckRevisionExistExecutor().Client(this).Execute<CheckRevisionExistResponse, CheckRevisionExistResult, CheckRevisionExistRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询key详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryKeyInfoResponse QueryKeyInfo(QueryKeyInfoRequest request) {
            return  new QueryKeyInfoExecutor().Client(this).Execute<QueryKeyInfoResponse, QueryKeyInfoResult, QueryKeyInfoRequest>(request);
        }
#else
        /// <summary>
        ///  查询key详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryKeyInfoResponse> QueryKeyInfo(QueryKeyInfoRequest request) {
            return await new QueryKeyInfoExecutor().Client(this).Execute<QueryKeyInfoResponse, QueryKeyInfoResult, QueryKeyInfoRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryUcAccessKeysResponse QueryUcAccessKeys(QueryUcAccessKeysRequest request) {
            return  new QueryUcAccessKeysExecutor().Client(this).Execute<QueryUcAccessKeysResponse, QueryUcAccessKeysResult, QueryUcAccessKeysRequest>(request);
        }
#else
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryUcAccessKeysResponse> QueryUcAccessKeys(QueryUcAccessKeysRequest request) {
            return await new QueryUcAccessKeysExecutor().Client(this).Execute<QueryUcAccessKeysResponse, QueryUcAccessKeysResult, QueryUcAccessKeysRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询key列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryKeysResponse QueryKeys(QueryKeysRequest request) {
            return  new QueryKeysExecutor().Client(this).Execute<QueryKeysResponse, QueryKeysResult, QueryKeysRequest>(request);
        }
#else
        /// <summary>
        ///  查询key列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryKeysResponse> QueryKeys(QueryKeysRequest request) {
            return await new QueryKeysExecutor().Client(this).Execute<QueryKeysResponse, QueryKeysResult, QueryKeysRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryPolicyGroupListResponse QueryPolicyGroupList(QueryPolicyGroupListRequest request) {
            return  new QueryPolicyGroupListExecutor().Client(this).Execute<QueryPolicyGroupListResponse, QueryPolicyGroupListResult, QueryPolicyGroupListRequest>(request);
        }
#else
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryPolicyGroupListResponse> QueryPolicyGroupList(QueryPolicyGroupListRequest request) {
            return await new QueryPolicyGroupListExecutor().Client(this).Execute<QueryPolicyGroupListResponse, QueryPolicyGroupListResult, QueryPolicyGroupListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateBackendConfigResponse UpdateBackendConfig(UpdateBackendConfigRequest request) {
            return  new UpdateBackendConfigExecutor().Client(this).Execute<UpdateBackendConfigResponse, UpdateBackendConfigResult, UpdateBackendConfigRequest>(request);
        }
#else
        /// <summary>
        ///  修改后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateBackendConfigResponse> UpdateBackendConfig(UpdateBackendConfigRequest request) {
            return await new UpdateBackendConfigExecutor().Client(this).Execute<UpdateBackendConfigResponse, UpdateBackendConfigResult, UpdateBackendConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询已绑定详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryBindGroupAuthResponse QueryBindGroupAuth(QueryBindGroupAuthRequest request) {
            return  new QueryBindGroupAuthExecutor().Client(this).Execute<QueryBindGroupAuthResponse, QueryBindGroupAuthResult, QueryBindGroupAuthRequest>(request);
        }
#else
        /// <summary>
        ///  查询已绑定详情
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryBindGroupAuthResponse> QueryBindGroupAuth(QueryBindGroupAuthRequest request) {
            return await new QueryBindGroupAuthExecutor().Client(this).Execute<QueryBindGroupAuthResponse, QueryBindGroupAuthResult, QueryBindGroupAuthRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeApiGroupsResponse DescribeApiGroups(DescribeApiGroupsRequest request) {
            return  new DescribeApiGroupsExecutor().Client(this).Execute<DescribeApiGroupsResponse, DescribeApiGroupsResult, DescribeApiGroupsRequest>(request);
        }
#else
        /// <summary>
        ///  查询分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeApiGroupsResponse> DescribeApiGroups(DescribeApiGroupsRequest request) {
            return await new DescribeApiGroupsExecutor().Client(this).Execute<DescribeApiGroupsResponse, DescribeApiGroupsResult, DescribeApiGroupsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建key
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateKeyResponse CreateKey(CreateKeyRequest request) {
            return  new CreateKeyExecutor().Client(this).Execute<CreateKeyResponse, CreateKeyResult, CreateKeyRequest>(request);
        }
#else
        /// <summary>
        ///  创建key
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateKeyResponse> CreateKey(CreateKeyRequest request) {
            return await new CreateKeyExecutor().Client(this).Execute<CreateKeyResponse, CreateKeyResult, CreateKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateRateLimitPolicyResponse CreateRateLimitPolicy(CreateRateLimitPolicyRequest request) {
            return  new CreateRateLimitPolicyExecutor().Client(this).Execute<CreateRateLimitPolicyResponse, CreateRateLimitPolicyResult, CreateRateLimitPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  创建流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateRateLimitPolicyResponse> CreateRateLimitPolicy(CreateRateLimitPolicyRequest request) {
            return await new CreateRateLimitPolicyExecutor().Client(this).Execute<CreateRateLimitPolicyResponse, CreateRateLimitPolicyResult, CreateRateLimitPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateRevisionResponse CreateRevision(CreateRevisionRequest request) {
            return  new CreateRevisionExecutor().Client(this).Execute<CreateRevisionResponse, CreateRevisionResult, CreateRevisionRequest>(request);
        }
#else
        /// <summary>
        ///  创建修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateRevisionResponse> CreateRevision(CreateRevisionRequest request) {
            return await new CreateRevisionExecutor().Client(this).Execute<CreateRevisionResponse, CreateRevisionResult, CreateRevisionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAuthGroupListResponse QueryAuthGroupList(QueryAuthGroupListRequest request) {
            return  new QueryAuthGroupListExecutor().Client(this).Execute<QueryAuthGroupListResponse, QueryAuthGroupListResult, QueryAuthGroupListRequest>(request);
        }
#else
        /// <summary>
        ///  查询可绑定部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAuthGroupListResponse> QueryAuthGroupList(QueryAuthGroupListRequest request) {
            return await new QueryAuthGroupListExecutor().Client(this).Execute<QueryAuthGroupListResponse, QueryAuthGroupListResult, QueryAuthGroupListRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除单个流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteRateLimitPolicyResponse DeleteRateLimitPolicy(DeleteRateLimitPolicyRequest request) {
            return  new DeleteRateLimitPolicyExecutor().Client(this).Execute<DeleteRateLimitPolicyResponse, DeleteRateLimitPolicyResult, DeleteRateLimitPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  删除单个流控策略
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteRateLimitPolicyResponse> DeleteRateLimitPolicy(DeleteRateLimitPolicyRequest request) {
            return await new DeleteRateLimitPolicyExecutor().Client(this).Execute<DeleteRateLimitPolicyResponse, DeleteRateLimitPolicyResult, DeleteRateLimitPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  绑定
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public BindGroupPolicyResponse BindGroupPolicy(BindGroupPolicyRequest request) {
            return  new BindGroupPolicyExecutor().Client(this).Execute<BindGroupPolicyResponse, BindGroupPolicyResult, BindGroupPolicyRequest>(request);
        }
#else
        /// <summary>
        ///  绑定
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<BindGroupPolicyResponse> BindGroupPolicy(BindGroupPolicyRequest request) {
            return await new BindGroupPolicyExecutor().Client(this).Execute<BindGroupPolicyResponse, BindGroupPolicyResult, BindGroupPolicyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryAccessKeysResponse QueryAccessKeys(QueryAccessKeysRequest request) {
            return  new QueryAccessKeysExecutor().Client(this).Execute<QueryAccessKeysResponse, QueryAccessKeysResult, QueryAccessKeysRequest>(request);
        }
#else
        /// <summary>
        ///  查询密钥列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryAccessKeysResponse> QueryAccessKeys(QueryAccessKeysRequest request) {
            return await new QueryAccessKeysExecutor().Client(this).Execute<QueryAccessKeysResponse, QueryAccessKeysResult, QueryAccessKeysRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  发布版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeployResponse Deploy(DeployRequest request) {
            return  new DeployExecutor().Client(this).Execute<DeployResponse, DeployResult, DeployRequest>(request);
        }
#else
        /// <summary>
        ///  发布版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeployResponse> Deploy(DeployRequest request) {
            return await new DeployExecutor().Client(this).Execute<DeployResponse, DeployResult, DeployRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  修改api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public UpdateApiByNameResponse UpdateApiByName(UpdateApiByNameRequest request) {
            return  new UpdateApiByNameExecutor().Client(this).Execute<UpdateApiByNameResponse, UpdateApiByNameResult, UpdateApiByNameRequest>(request);
        }
#else
        /// <summary>
        ///  修改api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<UpdateApiByNameResponse> UpdateApiByName(UpdateApiByNameRequest request) {
            return await new UpdateApiByNameExecutor().Client(this).Execute<UpdateApiByNameResponse, UpdateApiByNameResult, UpdateApiByNameRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CreateSubscriptionKeyResponse CreateSubscriptionKey(CreateSubscriptionKeyRequest request) {
            return  new CreateSubscriptionKeyExecutor().Client(this).Execute<CreateSubscriptionKeyResponse, CreateSubscriptionKeyResult, CreateSubscriptionKeyRequest>(request);
        }
#else
        /// <summary>
        ///  创建密钥
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CreateSubscriptionKeyResponse> CreateSubscriptionKey(CreateSubscriptionKeyRequest request) {
            return await new CreateSubscriptionKeyExecutor().Client(this).Execute<CreateSubscriptionKeyResponse, CreateSubscriptionKeyResult, CreateSubscriptionKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除用户域名接口
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteUserDomainResponse DeleteUserDomain(DeleteUserDomainRequest request) {
            return  new DeleteUserDomainExecutor().Client(this).Execute<DeleteUserDomainResponse, DeleteUserDomainResult, DeleteUserDomainRequest>(request);
        }
#else
        /// <summary>
        ///  删除用户域名接口
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteUserDomainResponse> DeleteUserDomain(DeleteUserDomainRequest request) {
            return await new DeleteUserDomainExecutor().Client(this).Execute<DeleteUserDomainResponse, DeleteUserDomainResult, DeleteUserDomainRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询流控策略列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryRateLimitPoliciesResponse QueryRateLimitPolicies(QueryRateLimitPoliciesRequest request) {
            return  new QueryRateLimitPoliciesExecutor().Client(this).Execute<QueryRateLimitPoliciesResponse, QueryRateLimitPoliciesResult, QueryRateLimitPoliciesRequest>(request);
        }
#else
        /// <summary>
        ///  查询流控策略列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryRateLimitPoliciesResponse> QueryRateLimitPolicies(QueryRateLimitPoliciesRequest request) {
            return await new QueryRateLimitPoliciesExecutor().Client(this).Execute<QueryRateLimitPoliciesResponse, QueryRateLimitPoliciesResult, QueryRateLimitPoliciesRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DescribeDeploymentsResponse DescribeDeployments(DescribeDeploymentsRequest request) {
            return  new DescribeDeploymentsExecutor().Client(this).Execute<DescribeDeploymentsResponse, DescribeDeploymentsResult, DescribeDeploymentsRequest>(request);
        }
#else
        /// <summary>
        ///  查询部署列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DescribeDeploymentsResponse> DescribeDeployments(DescribeDeploymentsRequest request) {
            return await new DescribeDeploymentsExecutor().Client(this).Execute<DescribeDeploymentsResponse, DescribeDeploymentsResult, DescribeDeploymentsRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除单个修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteRevisionResponse DeleteRevision(DeleteRevisionRequest request) {
            return  new DeleteRevisionExecutor().Client(this).Execute<DeleteRevisionResponse, DeleteRevisionResult, DeleteRevisionRequest>(request);
        }
#else
        /// <summary>
        ///  删除单个修订版本
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteRevisionResponse> DeleteRevision(DeleteRevisionRequest request) {
            return await new DeleteRevisionExecutor().Client(this).Execute<DeleteRevisionResponse, DeleteRevisionResult, DeleteRevisionRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询单个api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryApiResponse QueryApi(QueryApiRequest request) {
            return  new QueryApiExecutor().Client(this).Execute<QueryApiResponse, QueryApiResult, QueryApiRequest>(request);
        }
#else
        /// <summary>
        ///  查询单个api
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryApiResponse> QueryApi(QueryApiRequest request) {
            return await new QueryApiExecutor().Client(this).Execute<QueryApiResponse, QueryApiResult, QueryApiRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  创建API时，检查API名称是否重复,返回重复的apiId,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public CheckApiNameExistResponse CheckApiNameExist(CheckApiNameExistRequest request) {
            return  new CheckApiNameExistExecutor().Client(this).Execute<CheckApiNameExistResponse, CheckApiNameExistResult, CheckApiNameExistRequest>(request);
        }
#else
        /// <summary>
        ///  创建API时，检查API名称是否重复,返回重复的apiId,如果没有返回空
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<CheckApiNameExistResponse> CheckApiNameExist(CheckApiNameExistRequest request) {
            return await new CheckApiNameExistExecutor().Client(this).Execute<CheckApiNameExistResponse, CheckApiNameExistResult, CheckApiNameExistRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  查询api列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public QueryApisResponse QueryApis(QueryApisRequest request) {
            return  new QueryApisExecutor().Client(this).Execute<QueryApisResponse, QueryApisResult, QueryApisRequest>(request);
        }
#else
        /// <summary>
        ///  查询api列表
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<QueryApisResponse> QueryApis(QueryApisRequest request) {
            return await new QueryApisExecutor().Client(this).Execute<QueryApisResponse, QueryApisResult, QueryApisRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  重置key的acesskey和secretkey
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public ResetKeyResponse ResetKey(ResetKeyRequest request) {
            return  new ResetKeyExecutor().Client(this).Execute<ResetKeyResponse, ResetKeyResult, ResetKeyRequest>(request);
        }
#else
        /// <summary>
        ///  重置key的acesskey和secretkey
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<ResetKeyResponse> ResetKey(ResetKeyRequest request) {
            return await new ResetKeyExecutor().Client(this).Execute<ResetKeyResponse, ResetKeyResult, ResetKeyRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteBackendConfigResponse DeleteBackendConfig(DeleteBackendConfigRequest request) {
            return  new DeleteBackendConfigExecutor().Client(this).Execute<DeleteBackendConfigResponse, DeleteBackendConfigResult, DeleteBackendConfigRequest>(request);
        }
#else
        /// <summary>
        ///  删除后端配置
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteBackendConfigResponse> DeleteBackendConfig(DeleteBackendConfigRequest request) {
            return await new DeleteBackendConfigExecutor().Client(this).Execute<DeleteBackendConfigResponse, DeleteBackendConfigResult, DeleteBackendConfigRequest>(request).ConfigureAwait(false);
        }
#endif
#if NET40||NET35
        /// <summary>
        ///  删除单个API分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public DeleteApiGroupResponse DeleteApiGroup(DeleteApiGroupRequest request) {
            return  new DeleteApiGroupExecutor().Client(this).Execute<DeleteApiGroupResponse, DeleteApiGroupResult, DeleteApiGroupRequest>(request);
        }
#else
        /// <summary>
        ///  删除单个API分组
        /// </summary>
        /// <param name="request">请求参数信息</param>
        /// <returns>请求结果信息</returns>
        public async Task<DeleteApiGroupResponse> DeleteApiGroup(DeleteApiGroupRequest request) {
            return await new DeleteApiGroupExecutor().Client(this).Execute<DeleteApiGroupResponse, DeleteApiGroupResult, DeleteApiGroupRequest>(request).ConfigureAwait(false);
        }
#endif

            /// <summary>
            ///  默认ApigatewayClient 构造器 接口
            ///</summary>
            public interface Builder
            {

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>apigatewayClient 构造器</returns>
                Builder CredentialsProvider(CredentialsProvider provider);

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>apigatewayClient 构造器</returns>
                Builder Environment(Core.Client.SDKEnvironment environment);

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>apigatewayClient 构造器</returns>
                Builder HttpRequestConfig(HttpRequestConfig config);

                /// <summary>
                ///  构造ApigatewayClient 对象
                ///</summary>
                ApigatewayClient Build();
            }

            /// <summary>
            ///  默认ApigatewayClient 构造器
            ///</summary>
            public class DefaultBuilder : Builder
            {
                /// <summary>
                ///  ApigatewayClient service client
                /// </summary>
                private  ApigatewayClient apigatewayClient;

                /// <summary>
                ///  默认ApigatewayClient 构造器构造对象
                ///</summary>
                public DefaultBuilder()
                {
                    apigatewayClient = new ApigatewayClient();
                }

                /// <summary>
                ///  构造ApigatewayClient 对象
                ///</summary>
                public ApigatewayClient Build()
                {
                    if (apigatewayClient.CredentialsProvider == null)
                    {
                        //if credentialsProvider not set, try load jdcloud global default  credentials provider
                        apigatewayClient.credentialsProvider = JdCloud.DefaultInstance.GetCredentialsProvider();
                        if (apigatewayClient.credentialsProvider == null)
                        {
                            throw new ArgumentNullException("ApigatewayClient build error: jdcloud credentials provider not set");
                        }
                    }
                    if (apigatewayClient.HttpRequestConfig == null)
                    {
                        apigatewayClient.httpRequestConfig = JdCloud.DefaultInstance.GetHttpRequestConfig();
                        if (apigatewayClient.httpRequestConfig == null)
                        {
                        throw new ArgumentNullException("ApigatewayClient build error: http request config not set");
                        }
                    }
                    return apigatewayClient;
                }

                /// <summary>
                /// 设置认证信息参数
                /// </summary>
                /// <param name="provider">认证信息提供对象</param>
                /// <returns>apigatewayClient 构造器</returns>
                public Builder CredentialsProvider(CredentialsProvider provider)
                {
                    apigatewayClient.credentialsProvider = provider;
                    return this;
                }

                /// <summary>
                /// 设置请求环境参数
                /// </summary>
                /// <param name="environment">环境参数信息</param>
                /// <returns>apigatewayClient 构造器</returns>
                public Builder Environment(SDKEnvironment environment)
                {
                    apigatewayClient.environment = environment;
                    return this;
                }

                /// <summary>
                /// http 请求配置信息
                /// </summary>
                /// <param name="config">http 请求配置信息</param>
                /// <returns>apigatewayClient 构造器</returns>
                public Builder HttpRequestConfig(HttpRequestConfig config)
                {
                    apigatewayClient.httpRequestConfig = config;
                    return this;
                }
            }
    }
}
